cmake_minimum_required(VERSION 3.21)
if (${TOOLCHAIN_LANGUAGE} MATCHES "MikroC")
    project(Solution LANGUAGES MikroC)
else()
    project(Solution LANGUAGES C ASM)
endif()

include(mikroeUtils)

if (NOT PROJECT_TYPE)
    set(PROJECT_TYPE "mikrosdk" CACHE STRING "" FORCE)
endif()

add_executable(Solution
main.c
logging.c
logging.h
buzz.h
buzz.c
sensor.h
sensor.c
)

############################ Solution GENERATED CODE START ###########################
add_subdirectory(lib_inclinometer2)
target_link_libraries(Solution PUBLIC Click.Inclinometer2)
add_subdirectory(lib_buzzer)
target_link_libraries(Solution PUBLIC Click.Buzzer)
add_subdirectory(lib_c6dofimu27)
target_link_libraries(Solution PUBLIC Click.6DOFIMU27)
find_package(MikroSDK.Log REQUIRED)
target_link_libraries(Solution PUBLIC MikroSDK.Log)
find_package(MikroSDK.Conversions REQUIRED)
target_link_libraries(Solution PUBLIC MikroSDK.Conversions)
find_package(MikroSDK.Board REQUIRED)
target_link_libraries(Solution PUBLIC MikroSDK.Board)
find_package(MikroC.Core REQUIRED)
target_link_libraries(Solution PUBLIC MikroC.Core)
############################ Solution GENERATED CODE END ###########################


if(COMPILER_REVISION)
    if(${COMPILER_REVISION} VERSION_GREATER_EQUAL "1.0")
        if(${TOOLCHAIN_LANGUAGE} STREQUAL "GNU")
            if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/.meproject)
                fetch_startup_name(${CMAKE_CURRENT_SOURCE_DIR}/.meproject startupName)
                if(startupName)
                    add_startup_all_targets(. ${CMAKE_CURRENT_SOURCE_DIR} ${startupName})
                endif()
                fetch_linker_name(${CMAKE_CURRENT_SOURCE_DIR}/.meproject linkerName)
                if(linkerName)
                    add_ld_all_targets(. ${CMAKE_CURRENT_SOURCE_DIR} ${linkerName})
                endif()
            endif()
        endif()
    endif()
endif()
